[INFO] cloning repository https://github.com/wraithan/warlight-starterbot-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wraithan/warlight-starterbot-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwraithan%2Fwarlight-starterbot-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwraithan%2Fwarlight-starterbot-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 181ec2b799efcf521bab6bf3a7682f3c0d938fb0
[INFO] checking wraithan/warlight-starterbot-rust against try#72f88fc4e9458f89516a0b8b0868f3718aec5b47 for pr-74989
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwraithan%2Fwarlight-starterbot-rust" "/workspace/builds/worker-9/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/wraithan/warlight-starterbot-rust on toolchain 72f88fc4e9458f89516a0b8b0868f3718aec5b47
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/wraithan/warlight-starterbot-rust
[INFO] finished tweaking git repo https://github.com/wraithan/warlight-starterbot-rust
[INFO] tweaked toml for git repo https://github.com/wraithan/warlight-starterbot-rust written to /workspace/builds/worker-9/source/Cargo.toml
[INFO] crate git repo https://github.com/wraithan/warlight-starterbot-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] error: the lock file /workspace/builds/worker-9/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4b901e0b54dd3ee8ad0bdc37a91be229c0139f4b76da3b5495c2e551b189591b
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "4b901e0b54dd3ee8ad0bdc37a91be229c0139f4b76da3b5495c2e551b189591b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4b901e0b54dd3ee8ad0bdc37a91be229c0139f4b76da3b5495c2e551b189591b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b901e0b54dd3ee8ad0bdc37a91be229c0139f4b76da3b5495c2e551b189591b", kill_on_drop: false }`
[INFO] [stdout] 4b901e0b54dd3ee8ad0bdc37a91be229c0139f4b76da3b5495c2e551b189591b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b374ea9d26eb522b13f7d0198fbffded7ab9229ab0566233539b97b52532c565
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "b374ea9d26eb522b13f7d0198fbffded7ab9229ab0566233539b97b52532c565", kill_on_drop: false }`
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling getrandom v0.1.15
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.9
[INFO] [stderr]    Compiling glob v0.3.0
[INFO] [stderr]     Checking termcolor v1.1.0
[INFO] [stderr]     Checking aho-corasick v0.7.13
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling warbot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking regex v1.3.9
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stdout] error[E0432]: unresolved import `rand::sample`
[INFO] [stdout]   --> src/lib.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand::{thread_rng, sample};
[INFO] [stdout]    |                        ^^^^^^ no `sample` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/errors.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 try!(description.fmt(f));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/errors.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 try!(f.write_str(": "));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setting without type")));
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:66:25
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:70:25
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:82:25
[INFO] [stdout]    |
[INFO] [stdout] 82 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:86:25
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:90:29
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let raw_value = try!(parts.next().ok_or((
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:97:29
[INFO] [stdout]    |
[INFO] [stdout] 97 |             let raw_value = try!(parts.next().ok_or((
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setup_map without type")));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let value = try!(parts_to_pair_vector(parts));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:116:25
[INFO] [stdout]     |
[INFO] [stdout] 116 |             let value = try!(parts_to_pair_vector(parts));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:138:21
[INFO] [stdout]     |
[INFO] [stdout] 138 |                     try!(u64::from_str_radix(pair.get(0).unwrap(), 10)),
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     try!(parts_to_u64_vector(pair.get(1).unwrap().split(',')))
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:149:25
[INFO] [stdout]     |
[INFO] [stdout] 149 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |             try!(u64::from_str_radix(triplet.get(0).unwrap(), 10)),
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |             try!(u64::from_str_radix(triplet.get(2).unwrap(), 10))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:190:31
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves missing type")));
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:193:36
[INFO] [stdout]     |
[INFO] [stdout] 193 |                         value.push(try!(parts_to_attack_transfer(name.to_string(), &mut parts)))
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:196:36
[INFO] [stdout]     |
[INFO] [stdout] 196 |                         value.push(try!(parts_to_place_armies(name.to_string(), &mut parts)))
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:209:20
[INFO] [stdout]     |
[INFO] [stdout] 209 |     let raw_time = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got go without type")));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:210:20
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let timebank = try!(u64::from_str_radix(raw_time, 10));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |     let value = try!(parts_to_u64_vector(parts));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:216:19
[INFO] [stdout]     |
[INFO] [stdout] 216 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setup_map without type")));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:220:25
[INFO] [stdout]     |
[INFO] [stdout] 220 |             let value = try!(parts_to_u64(parts, "go place_armies".to_owned()));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:224:25
[INFO] [stdout]     |
[INFO] [stdout] 224 |             let value = try!(parts_to_u64(parts, "go attack/transfer".to_owned()));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:232:21
[INFO] [stdout]     |
[INFO] [stdout] 232 |     let raw_value = try!(parts.next().ok_or((
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 |     Ok(try!(u64::from_str_radix(raw_value, 10)))
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:242:5
[INFO] [stdout]     |
[INFO] [stdout] 242 |     try!(peeker.peek().ok_or((ErrorKind::MalformedCommand, "Got command without any arguments")));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:245:20
[INFO] [stdout]     |
[INFO] [stdout] 245 |         value.push(try!(u64::from_str_radix(word, 10)));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |             try!(u64::from_str_radix(pair.get(0).unwrap(), 10)),
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |             try!(u64::from_str_radix(pair.get(1).unwrap(), 10))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:278:22
[INFO] [stdout]     |
[INFO] [stdout] 278 |     let raw_source = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves source")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:279:22
[INFO] [stdout]     |
[INFO] [stdout] 279 |     let raw_target = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves target")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:280:22
[INFO] [stdout]     |
[INFO] [stdout] 280 |     let raw_armies = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves armies")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         try!(u64::from_str_radix(raw_source, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |         try!(u64::from_str_radix(raw_target, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |         try!(u64::from_str_radix(raw_armies, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:290:22
[INFO] [stdout]     |
[INFO] [stdout] 290 |     let raw_target = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves target")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:291:22
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let raw_armies = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves armies")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         try!(u64::from_str_radix(raw_target, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         try!(u64::from_str_radix(raw_armies, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser/errors.rs:88:32
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/parser/errors.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |             error::Error::description(err).to_owned()
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand::sample`
[INFO] [stdout]   --> src/lib.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand::{thread_rng, sample};
[INFO] [stdout]    |                        ^^^^^^ no `sample` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/errors.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 try!(description.fmt(f));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/errors.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 try!(f.write_str(": "));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setting without type")));
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:66:25
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:70:25
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:82:25
[INFO] [stdout]    |
[INFO] [stdout] 82 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:86:25
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:90:29
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let raw_value = try!(parts.next().ok_or((
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 47 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/parser/mod.rs:97:29
[INFO] [stdout]    |
[INFO] [stdout] 97 |             let raw_value = try!(parts.next().ok_or((
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setup_map without type")));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let value = try!(parts_to_pair_vector(parts));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:116:25
[INFO] [stdout]     |
[INFO] [stdout] 116 |             let value = try!(parts_to_pair_vector(parts));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:138:21
[INFO] [stdout]     |
[INFO] [stdout] 138 |                     try!(u64::from_str_radix(pair.get(0).unwrap(), 10)),
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     try!(parts_to_u64_vector(pair.get(1).unwrap().split(',')))
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:149:25
[INFO] [stdout]     |
[INFO] [stdout] 149 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |             try!(u64::from_str_radix(triplet.get(0).unwrap(), 10)),
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |             try!(u64::from_str_radix(triplet.get(2).unwrap(), 10))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:190:31
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves missing type")));
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:193:36
[INFO] [stdout]     |
[INFO] [stdout] 193 |                         value.push(try!(parts_to_attack_transfer(name.to_string(), &mut parts)))
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:196:36
[INFO] [stdout]     |
[INFO] [stdout] 196 |                         value.push(try!(parts_to_place_armies(name.to_string(), &mut parts)))
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:209:20
[INFO] [stdout]     |
[INFO] [stdout] 209 |     let raw_time = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got go without type")));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:210:20
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let timebank = try!(u64::from_str_radix(raw_time, 10));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |     let value = try!(parts_to_u64_vector(parts));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:216:19
[INFO] [stdout]     |
[INFO] [stdout] 216 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setup_map without type")));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:220:25
[INFO] [stdout]     |
[INFO] [stdout] 220 |             let value = try!(parts_to_u64(parts, "go place_armies".to_owned()));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `warbot`.
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:224:25
[INFO] [stdout]     |
[INFO] [stdout] 224 |             let value = try!(parts_to_u64(parts, "go attack/transfer".to_owned()));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:232:21
[INFO] [stdout]     |
[INFO] [stdout] 232 |     let raw_value = try!(parts.next().ok_or((
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 |     Ok(try!(u64::from_str_radix(raw_value, 10)))
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:242:5
[INFO] [stdout]     |
[INFO] [stdout] 242 |     try!(peeker.peek().ok_or((ErrorKind::MalformedCommand, "Got command without any arguments")));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:245:20
[INFO] [stdout]     |
[INFO] [stdout] 245 |         value.push(try!(u64::from_str_radix(word, 10)));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |             try!(u64::from_str_radix(pair.get(0).unwrap(), 10)),
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |             try!(u64::from_str_radix(pair.get(1).unwrap(), 10))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:278:22
[INFO] [stdout]     |
[INFO] [stdout] 278 |     let raw_source = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves source")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:279:22
[INFO] [stdout]     |
[INFO] [stdout] 279 |     let raw_target = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves target")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:280:22
[INFO] [stdout]     |
[INFO] [stdout] 280 |     let raw_armies = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves armies")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         try!(u64::from_str_radix(raw_source, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |         try!(u64::from_str_radix(raw_target, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |         try!(u64::from_str_radix(raw_armies, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:290:22
[INFO] [stdout]     |
[INFO] [stdout] 290 |     let raw_target = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves target")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:291:22
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let raw_armies = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves armies")));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         try!(u64::from_str_radix(raw_target, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser/mod.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         try!(u64::from_str_radix(raw_armies, 10)),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser/errors.rs:88:32
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/parser/errors.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |             error::Error::description(err).to_owned()
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 47 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "b374ea9d26eb522b13f7d0198fbffded7ab9229ab0566233539b97b52532c565", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b374ea9d26eb522b13f7d0198fbffded7ab9229ab0566233539b97b52532c565", kill_on_drop: false }`
[INFO] [stdout] b374ea9d26eb522b13f7d0198fbffded7ab9229ab0566233539b97b52532c565
